/*******************************************************************/
/* @ All Rights Reserved Copyright (C) 2014 broada,Co.,Ltd.        */
/*                                                                 */
/*  NAME      = frame_params.h                                     */
/*  NOTE      =                                                    */
/*  DATE      = 2014/11/17 by yaohl                                */
/*******************************************************************/

#ifndef __FRAME_PARAMS_H_
#define __FRAME_PARAMS_H_

#include "frame_cfg.h"

typedef struct __apm_params {
    unsigned int ui_ct_hash_size;           /* ct hash table大小 */
    unsigned int ui_ct_max_cnt;             /* ct 最大跟踪条数 */
    unsigned int ui_ct_data_pkgs;           /* 最大数据包缓存条数 */

    unsigned int ui_tcp_est_timeout;        /* tcp连接完成后的timeout时间 */
    unsigned int ui_tcp_syn_timeout;        /* tcp syn的timeout时间 */
    unsigned int ui_udp_est_timeout;        /* udp连接完成后的timeout时间 */
    unsigned int ui_relative_timeout;       /* 关联连接的timeout时间 */

    unsigned int ui_dead_conn_time;         /* 僵尸连接时间 */
    unsigned int ui_session_timeout;        /* session timeout时间 */

    unsigned int ui_l7_detect_max_times;    /* 最大的协议判断次数 */
    unsigned int ui_l7_deep_max;            /* 协议的最大嵌套深度 */

    char arr_cmd_srv[128];                  /* cui 命令服务器接口 */
    unsigned short us_port;                 /* http服务端口 */
    char arr_zmq_connect[128];              /* zmq 连接的配置 */
    unsigned int ui_nids_cnt;               /* nids线程个数 */
    unsigned int ui_do_task_cnt;            /* 协议解析线程个数 */

    unsigned int ui_stat_server_hash_size;  /* 统计类:服务节点信息的hash大小 */

    int i_flag_report_org_conn;             /* 原始连接数上报标识(1:FR_YES 上报; 0:FR_NO 丢弃) */
    unsigned int ui_stat_conn_time;         /* 连接数多长时间(sec)统计并上报 */

    unsigned int ui_dssl_hash_size;                   /* 存储session_id hash最大值 */
    unsigned int ui_dssl_key_timeout;                 /* SSL key session timeout */
    unsigned int ui_dssl_tcp_timeout;                 /* SSL tcp session timeout */

    char arr_dssl_zmq_connect[128];

    int i_nids_udp_hash_size;               /* 删除重复udp时udp缓存hash的大小 */
    int i_nids_udp_repeat_timeout;          /* 删除重复udp时udp间隔时间 (单位：微秒) */
    int i_nids_udp_cache_time;              /* 删除重复udp时udp缓存时间 (单位：秒) */

} Frapm_params;

int frame_params_get(int i_dumpfile);
void frame_params_output(void);

extern Frapm_params st_apm_params;

#endif
